
/'''
 ' @brief High Level Architecture
 ' @see https://plantuml.com/guide
 '/
@startwbs
!theme amiga

*:==AcadeFighter Engine
//High level classes that handles/build the game environment//
----
*acade_fighter
*camera2D
*event_manager
*resource_manager
*player
--User Interface--
*level
*scenery
*character
;
'end ArcadeFighter Engine


**:==glad/KHR
//Responsible for loading OpenGl bindings!//
----
*gl
*khrplatform
;
'end glad_KHR


**:==toolbox
//Generic services and algorithms.//
----
*debug
*fifo
*linked_list
*nary_tree
*time_keep
;
' end toolbox
***:==stb
//https://github.com/nothings/stb//
----
*stb_image
*stb_truetype
;
' end stb


**:==graphics
//Low and Mid level APIs for rendering.//
----
*window_manager
*opengl
*shader
*texture
*sprite2D
*font
*text_box
;
' end graphics
***:==shaders
//Holds the most basic shader programs.//
----
*fragment
*vertice
;
' end shaders


**:==input_devices
//All the known input hardware devices//
----
*controller
*keyboard
;
'end input_devices


**:==audio
//Audio Engine (uses SDL_mixer)//
----
*audio
*audio_interfaces
*effect_sources
*music_sources
;
'end audio


**:==interfaces
//Abstract classes to be extended.//
----
*game_object
*command
*input_device
*state
;
'end interfaces
@endwb

